With the advent of high-density computer logic and multi-functional replaceable boards, it has been desirable to be able to detect malfunctioning replaceable elements so as to decrease the time required to repair a system when a failure occurs. In typical systems manufactured to date, various error condition detectors are located throughout the system. When a detectable error occurs, a latch is set and an error indication may be transmitted to the system console to alert the system operator to the error. Alternatively, the detected error condition may be stored in a system error log which can later be analyzed by a repair technician to determine whether a part should be replaced. Typically, the system error log is stored in some non-volatile memory such as on a magnetic disk or tape.
Other computer systems utilize a separate diagnostic processor capable of performing a plurality of functions including loading and running diagnostic programs in an attempt to isolate the failing hardware to a field replaceable module. The diagnostic processor may also perform system wide error logging and CPU self-test on system start-up. The diagnostic processor may also be able to down-load diagnostic programs into the computer from a floppy disk or the like and execute those diagnostic programs and analyze the results to isolate a failing module.
While these approaches do provide the user with some means to detect and identify modules that have failed, they do have their weaknesses. For example, such diagnostic hardware is designed to be usable for diagnostic purposes. As such, printed circuit board space is taken up by hardware used solely for diagnostic purposes thereby diminishing the space available for hardware used directly in productive computer operation. Such dedicated diagnostic hardware also increases the cost of the computer system. If it is effective in locating failed replaceable modules, such diagnostic hardware may reduce the system cost over its lifetime by reducing maintenance costs.
A centralized diagnostic approach as described above has other problems. Such a design usually requires a large number of communication lines or extensive hardware to multiplex fewer lines. This approach does increase the probability of a communication failure as well as reduce the available space for system communication lines. A further disadvantage is that the program for the central diagnostic processor must be changed when another element is added to the processor.
In view of the above-mentioned problems associated with diagnostic hardware in computer systems, it is the principal objective of the present invention to provide a more cost effective diagnostic capability than has heretofore been achieved.
It is still a further objective of the invention to provide a diagnostic system which shares elements of the computer, but does not sacrifice the ability to locate module failures.
It is yet another objective of the invention to provide a diagnostic system which is largely immune to power failures within the computer system itself.